package com.cloud.message.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.cloud.entity.SysNoticeUser;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 通知与用户关联表
 *
 * @author yzj
 * @since 2022-04-18
 */
@Mapper
public interface SysNoticeUserMapper extends BaseMapper<SysNoticeUser> {

    /**
     * 检验用户查询记录是否存在
     *
     * @param noticeId
     * @return
     */
    public int checkUserUnique(@Param("noticeId") Long noticeId, @Param("userId") Long userId);

    /**
     * 通过id删除通知与用户关联信息
     *
     * @param noticeIds
     * @return
     */
    public int deleteUserNoticeByNoticeId(@Param("noticeIds") List<Long> noticeIds);

    /**
     * 批量新增用户通知信息
     *
     * @param noticeUserList
     * @return
     */
    public int batchUserNotice(List<SysNoticeUser> noticeUserList);

    /**
     * 修改通知与用户关联状态
     *
     * @param noticeUser
     * @return
     */
    public int updateUserNotice(@Param("param") SysNoticeUser noticeUser);

    /**
     * 清除我的消息
     *
     * @param userId
     * @return
     */
    public int cleanUserNotice(@Param("readStatus") Integer readStatus, @Param("userId") Long userId);

    /**
     * 根据账户Id查询读取状态详情
     *
     * @param noticeId
     * @param userId
     * @return
     */
    public SysNoticeUser selectNoticeByUserId(@Param("noticeId") Long noticeId, @Param("userId") Long userId);

}
